home *** CD-ROM | disk | FTP | other *** search
/ Apple Developer Connection 1998 Fall: Game Toolkit / Disc.iso / SDKs / QuickTime Mac / PInterfaces / QD3DShader.p < prev    next >
Encoding:
Text File  |  1998-04-09  |  6.6 KB  |  151 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DShader.p
  3.  
  4.      Contains:    QuickDraw 3D Shader / Color Routines                            
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    QuickTime 3.0
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DShader;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DSHADER__}
  28. {$SETC __QD3DSHADER__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DShaderIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37.  
  38.  
  39. {$PUSH}
  40. {$ALIGN POWER}
  41. {$LibExport+}
  42.  
  43. {*****************************************************************************
  44.  **                                                                             **
  45.  **                                RGB Color routines                             **
  46.  **                                                                             **
  47.  ****************************************************************************}
  48. FUNCTION Q3ColorRGB_Set(VAR color: TQ3ColorRGB; r: Single; g: Single; b: Single): TQ3ColorRGBPtr; C;
  49. FUNCTION Q3ColorARGB_Set(VAR color: TQ3ColorARGB; a: Single; r: Single; g: Single; b: Single): TQ3ColorARGBPtr; C;
  50. FUNCTION Q3ColorRGB_Add({CONST}VAR c1: TQ3ColorRGB; {CONST}VAR c2: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  51. FUNCTION Q3ColorRGB_Subtract({CONST}VAR c1: TQ3ColorRGB; {CONST}VAR c2: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  52. FUNCTION Q3ColorRGB_Scale({CONST}VAR color: TQ3ColorRGB; scale: Single; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  53. FUNCTION Q3ColorRGB_Clamp({CONST}VAR color: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  54. FUNCTION Q3ColorRGB_Lerp({CONST}VAR first: TQ3ColorRGB; {CONST}VAR last: TQ3ColorRGB; alpha: Single; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  55. FUNCTION Q3ColorRGB_Accumulate({CONST}VAR src: TQ3ColorRGB; VAR result: TQ3ColorRGB): TQ3ColorRGBPtr; C;
  56. {  Q3ColorRGB_Luminance really returns a pointer to a Single }
  57. FUNCTION Q3ColorRGB_Luminance({CONST}VAR color: TQ3ColorRGB; VAR luminance: Single): Ptr; C;
  58. {*****************************************************************************
  59.  **                                                                             **
  60.  **                                Shader Types                                 **
  61.  **                                                                             **
  62.  ****************************************************************************}
  63.  
  64. TYPE
  65.     TQ3ShaderUVBoundary         = LONGINT;
  66. CONST
  67.     kQ3ShaderUVBoundaryWrap        = {TQ3ShaderUVBoundary}0;
  68.     kQ3ShaderUVBoundaryClamp    = {TQ3ShaderUVBoundary}1;
  69.  
  70.  
  71. {*****************************************************************************
  72.  **                                                                             **
  73.  **                                Shader Routines                                 **
  74.  **                                                                             **
  75.  ****************************************************************************}
  76. FUNCTION Q3Shader_GetType(shader: TQ3ShaderObject): TQ3ObjectType; C;
  77. FUNCTION Q3Shader_Submit(shader: TQ3ShaderObject; view: TQ3ViewObject): TQ3Status; C;
  78. FUNCTION Q3Shader_SetUVTransform(shader: TQ3ShaderObject; {CONST}VAR uvTransform: TQ3Matrix3x3): TQ3Status; C;
  79. FUNCTION Q3Shader_GetUVTransform(shader: TQ3ShaderObject; VAR uvTransform: TQ3Matrix3x3): TQ3Status; C;
  80. FUNCTION Q3Shader_SetUBoundary(shader: TQ3ShaderObject; uBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  81. FUNCTION Q3Shader_SetVBoundary(shader: TQ3ShaderObject; vBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  82. FUNCTION Q3Shader_GetUBoundary(shader: TQ3ShaderObject; VAR uBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  83. FUNCTION Q3Shader_GetVBoundary(shader: TQ3ShaderObject; VAR vBoundary: TQ3ShaderUVBoundary): TQ3Status; C;
  84.  
  85. {*****************************************************************************
  86.  **                                                                             **
  87.  **                            Illumination Shader    Classes                         **
  88.  **                                                                             **
  89.  ****************************************************************************}
  90. FUNCTION Q3IlluminationShader_GetType(shader: TQ3ShaderObject): TQ3ObjectType; C;
  91. FUNCTION Q3PhongIllumination_New: TQ3ShaderObject; C;
  92. FUNCTION Q3LambertIllumination_New: TQ3ShaderObject; C;
  93. FUNCTION Q3NULLIllumination_New: TQ3ShaderObject; C;
  94.  
  95. {*****************************************************************************
  96.  **                                                                             **
  97.  **                                 Surface Shader                                 **
  98.  **                                                                             **
  99.  ****************************************************************************}
  100. FUNCTION Q3SurfaceShader_GetType(shader: TQ3SurfaceShaderObject): TQ3ObjectType; C;
  101.  
  102. {*****************************************************************************
  103.  **                                                                             **
  104.  **                                Texture Shader                                 **
  105.  **                                                                             **
  106.  ****************************************************************************}
  107. FUNCTION Q3TextureShader_New(texture: TQ3TextureObject): TQ3ShaderObject; C;
  108. FUNCTION Q3TextureShader_GetTexture(shader: TQ3ShaderObject; VAR texture: TQ3TextureObject): TQ3Status; C;
  109. FUNCTION Q3TextureShader_SetTexture(shader: TQ3ShaderObject; texture: TQ3TextureObject): TQ3Status; C;
  110.  
  111. {*****************************************************************************
  112.  **                                                                             **
  113.  **                                Texture Objects                                 **
  114.  **                                                                             **
  115.  ****************************************************************************}
  116. FUNCTION Q3Texture_GetType(texture: TQ3TextureObject): TQ3ObjectType; C;
  117. FUNCTION Q3Texture_GetWidth(texture: TQ3TextureObject; VAR width: UInt32): TQ3Status; C;
  118. FUNCTION Q3Texture_GetHeight(texture: TQ3TextureObject; VAR height: UInt32): TQ3Status; C;
  119.  
  120. {*****************************************************************************
  121.  **                                                                             **
  122.  **                                Pixmap Texture                                 **
  123.  **                                                                             **
  124.  ****************************************************************************}
  125. FUNCTION Q3PixmapTexture_New({CONST}VAR pixmap: TQ3StoragePixmap): TQ3TextureObject; C;
  126. FUNCTION Q3PixmapTexture_GetPixmap(texture: TQ3TextureObject; VAR pixmap: TQ3StoragePixmap): TQ3Status; C;
  127. FUNCTION Q3PixmapTexture_SetPixmap(texture: TQ3TextureObject; {CONST}VAR pixmap: TQ3StoragePixmap): TQ3Status; C;
  128.  
  129. {*****************************************************************************
  130.  **                                                                             **
  131.  **                                Mipmap Texture                                 **
  132.  **                                                                             **
  133.  ****************************************************************************}
  134. FUNCTION Q3MipmapTexture_New({CONST}VAR mipmap: TQ3Mipmap): TQ3TextureObject; C;
  135. FUNCTION Q3MipmapTexture_GetMipmap(texture: TQ3TextureObject; VAR mipmap: TQ3Mipmap): TQ3Status; C;
  136. FUNCTION Q3MipmapTexture_SetMipmap(texture: TQ3TextureObject; {CONST}VAR mipmap: TQ3Mipmap): TQ3Status; C;
  137.  
  138.  
  139.  
  140.  
  141. {$ALIGN RESET}
  142. {$POP}
  143.  
  144. {$SETC UsingIncludes := QD3DShaderIncludes}
  145.  
  146. {$ENDC} {__QD3DSHADER__}
  147.  
  148. {$IFC NOT UsingIncludes}
  149.  END.
  150. {$ENDC}
  151.